Skip to content

Conversation

@MarcelGeo
Copy link
Collaborator

@MarcelGeo MarcelGeo commented Oct 9, 2025

https://github.com/MerginMaps/server-private/issues/3014

We are introducing new table for storing chckpoints (project_version_change), where rank and delta json for current version is stored. If version are in logarithms logic with base=4, then store higher level checkpoints if needed.

Structure for delta json: List[DeltaData]. If there is not diff, diff key is not provided in result.

[
  {
    "diff": "Survey_points.gpkg-diff-14ee7fe7-366a-4ba8-85f3-f15c38242d93",
    "path": "Survey_points.gpkg",
    "size": 98304,
    "change": "update_diff",
    "version":  25,
    "checksum": "12b26ef4ed11e4fb411baf40402fedf26696f830"
  }
]

Delta creation logic

  • if new version is created, Project version change with delta and rank=0 is created
  • if somebody will return changes which will be aplied in /delta endpoint, checkpoints are created or returned if exists
  • as side effect, If checkpoint does not exists, FileDiff new file future geodiff file name is generated in FileDiff table

Migration

Migrate file history and file diffs to merged delta in project_version_change table.

@MarcelGeo MarcelGeo requested a review from varmar05 October 9, 2025 16:24
@coveralls
Copy link

coveralls commented Oct 9, 2025

Pull Request Test Coverage Report for Build 18915751036

Details

  • 380 of 387 (98.19%) changed or added relevant lines in 6 files are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.2%) to 94.465%

Changes Missing Coverage Covered Lines Changed/Added Lines %
server/mergin/sync/models.py 109 116 93.97%
Totals Coverage Status
Change from base Build 18221816068: 0.2%
Covered Lines: 8482
Relevant Lines: 8979

💛 - Coveralls

- rename table to project version delta with column changes
- rename classes
- add get_delta_changes to project instance (nice)
- fix migration to int
@MarcelGeo MarcelGeo requested a review from varmar05 October 10, 2025 16:46
- update new table schema for project version delta
- add tests and upgrade existing to handle order of diffs
- handle delete project cleanup of delta checkpoints
- update reponse to items: []
- make it more clear with changes logic (?)
- @varmar05
@varmar05
Copy link
Collaborator

It's quite heavy logic but looks great, good job!

@MarcelGeo MarcelGeo merged commit 2c9bdad into dev-r85-v2-pull Oct 30, 2025
4 checks passed
@MarcelGeo MarcelGeo deleted the cache-versions branch October 30, 2025 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants